<!DOCTYPE html><html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>Yoshimi User Manual ~ Banks</title>
    <link rel="stylesheet" type="text/css" href="../files/style.css">
  </head>
  <body>
    <nav class="navbar">
      <a href="../index.html">Index</a>
    </nav>
    <a id="top"></a>
    <h2 style="text-align: center">Instrument Banks</h2>
    <p>
    Pre-designed instrument patches are immediately available in <em>banks</em>. These in turn are contained within a bank <em>root</em>. These bank roots are themselves contained in a root <em>path</em>. The entire structure bearing a direct relationship to MIDI Program Change, Bank LSB and Bank MSB controllers respectively. For normal work that gives up to 128 Instruments in 128 banks in 128 Roots - potentially over 2 million! Yoshimi actually has an extra 32 Instruments in each bank which are only accessible to MIDI using a custom extended program change control.
    <br><br>
    Note that Yoshimi uses the standard MIDI numbers, starting from 1 for program (instrument) changes, and 0 for banks and roots.
    <br><br>
    As well as instrument files themselves, a bank will have a hidden ID file <em>.bankdir</em>. This serves two purposes. It speeds up bank searches. If this is present there is no need to positively identify at least one instrument. It also contains the version number from the last time the bank was updated.
    <br><br>
    We advise against making any changes to the bank structure through any external means (such as a desktop filer) as it is possible to invalidate Yoshimi's records and cause it to perform a complete bank reset. This in turn could change all the MIDI numbers, breaking any previous projects.
    </p>
    <img src="images/instruments.png" alt="An instrument bank" class="image">
    <a id="bank"></a>
    <p>
    This first image is of a typical instrument bank, and the first item at the top is a menu of alternative banks.
    Following this is a button that opens the instrument <a href="search.html">Search</a> window for loading an instrument by its type classification from any bank at all. Next is a button that takes you to the <b>Root&nbsp;paths</b> window, and finally there is one for the <b>Bank&nbsp;roots</b> window.
    <br><br>
    The menu is quick to use when changing banks, but doesn't give you the flexibility of using the buttons for bank roots and root paths. In particular, a right hand mouse click on these buttons will close this window while opening the wanted one, and a right-click on the <b>Close</b> button (bottom right) will return you to where you came from.
    </p>
    <p>
    Below this is a table of all the instruments in the current bank, with coloured backgrounds indicating what engine types are being used. In order, these are AddSynth, SubSynth, PadSynth <em>(a reminder is shown at the bottom of the window)</em>.
    <br><br>Clicking on one of these will load the instrument into the currently selected part, and highlight it in the bank, so you can easily see where it came from. If selected with a right-click it will also close the window.
    If the virtual keyboard is visible, then it will be given keyboard focus so you can use it to quickly try out different sounds.
    </p>
    <p>
    The buttons on the bottom row determine what action is to be performed when clicking on an instrument. The coloured underscore shows which is the currently active one, and by default it will be <b>Select</b>.
    <br><br>
    With these buttons, you set the operation you want to perform <em>before</em> clicking on an entry, and regardless of whether the action is successful or not, it will always return to 'Select' Also, the next four buttons will only work where you have filesystem write permission, as they all make actual file changes.
    <br><br>
    <b>Rename</b> When chosen, clicking on an instrument entry a small editable window will be opened with the existing name. Changing this will change the name here and the actual filename. It will <em>not</em> change the name of the current part.
    <br><br>
    <b>Save</b> Clicking on a table slot will save the currently selected part to that location. If there is already an entry there, you will be asked if you want to overwrite it. It will not save the default 'Simple Sound'. There would be no point, as that can easily be recovered by clearing the instrument.
    <br><br>
    <b>Delete</b> This asks for confirmation before permanently removing the selected Instrument.
    <br><br>
    <b>Swap</b> This is a two stage operation. You select one instrument (which will then be highlighted) followed by either a second instrument to actually swap with, or an empty slot to just move it to a new location. Additionally, after making your first selection you can change bank, or even bank&nbsp;root before making the second selection, so you can move and swap right across the entire bank structure.
    </p>
    <img src="../images/boundry.png" alt="divider" class="wideline">
    <p>
    <img src="images/banks.png" alt="A bank root" class="image">
    <a id="root"></a>
    <h3>A bank root</h3>
    There are just two buttons on the top row of this window. One taking you to the <b>Root&nbsp;paths</b> and the other to the currently selected <b>Instruments&nbsp;bank</b>. These buttons behave in the same way as before, with a right-click closing this window as it opens the next.
    <br><br>
    The table of banks also behaves in a similar way to the Instruments one.
    <br><br>
    The first five buttons on the bottom row also operate in the same way. However, when deleting you will be warned that you will also be completely removing the instrument files, and exactly how many there are.
    <br><br>
    We suggest you avoid Bank 0, as this is the one that many sequencers automatically send from time to time. Yoshimi reports attempts to access non-existent banks, but otherwise does nothing.
    <br><br>
    <b>Import</b> If you want to add a bank obtained from elsewhere (via the Internet for example) this provides a safe managed way of doing so without disturbing the rest of your bank setup. After setting this option click on an empty bank slot and you will be given a filer window to identify the bank you wish to import. Use the normal controls to find it, then instead of using the navigation controls click on the filer's <em>Import</em> button. This will only install actual instrument files, any others or subdirectories will be ignored. Once installed, you can rename it if you wish.
    <br><br>
    <b>Export</b> This also operates in a managed way. It will not allow you to overwrite existing directories, not even bank ones. On selecting a bank for export you will again get a filer window for deciding where you want it to go, but the <b>Name</b> field will also be active so you can change it to something else. This will copy out the entire contents of the bank - it doesn't expect to find anything other than instruments and the bank ID.
    </p>
    <img src="../images/boundry.png" alt="divider" class="wideline">
    <p>
    <img src="images/roots.png" alt="A root path" class="image">
    <a id="path"></a>
    <h3>Root paths</h3>
    As you can see, the behaviour of this window is quite different to the others. First there is a list of the known bank root paths, preceded by their MIDI numbers. The one with a following '*' is the one currently in use.
    <br><br>
    <b>Add root directory</b> Clicking on this will open a filer window so that you can choose a directory. Note this is a directory <em>containing</em> banks, not a bank itself. When you've reached the required one, clicking on the <b>From</b> button will add it to the list and make it the current one. If there were no banks in that directory the filer will offer to make one, and place an instrument in it. To do this it has to use part 1, so overwrites anything that may be there.
    <br><br>
    <b>Remove root dir</b> You first need to click on the path you want to remove before this operation becomes active. This doesn't actually delete the directory or its contents, but simply removes it from the path list.
    <br><br>
    <b>Make current</b> Makes a chosen root path the current one, but doesn't open it.
    <br><br>
    <b>Open Current</b> Provides a convenient way to open a bank root. As usual, a right-click will close this one at the same time.
    <br><br>
    Finally there is a spin box enabling you to change the MIDI number of the selected one. This can be any number between 0 and 127. It is only a number change. No files are moved. When changing this, a button will appear marked 'Pending'. The change is only made and the list position moved once this is clicked. If you set it to the number of an existing one the two will swap places. It also makes this the current root path.
    <br><br>
    We suggest you avoid Root 0, as this is the one that many sequencers automatically send from time to time. Yoshimi reports attempts to access non-existent roots, but otherwise does nothing.
    <br><br>
    <b>Note</b>
    <br>
    <div class="tab">
    <b><em>.local/share/yoshimi/found/yoshimi/banks</em></b> is a root path automatically created on first time startup, and is a copy of the installed default one. It is provided so that you have the contents in a form that you can add to, move around and edit. You can't do this with the default ones.
    </div>
    </p>
    <p>
    <img src="../images/boundry.png" alt="divider" class="wideline">
    <a href="#top" class="up">Back to top</a>
    <br><br>
    <a href="#root" class="up">Back to Bank Root</a>
    <a href="../part/part.html">Next</a> (Parts and Channels)
    </p>
  </body>
</html>
